Two View Geometry

Planar 2D-2D Geometry (Projective Geometry)


Overview of Perspective Geometry

Untitled

  • Planar Homography Estimation

    Untitled

    • Unknown

      • Planar homography (8 DoF)
    • Given

      • Point correspondence (x1,x1),,(xn,xn)\left(\mathbf{x}_{1}, \mathbf{x}_{1}^{\prime}\right), \ldots,\left(\mathbf{x}_{n}, \mathbf{x}_{n}^{\prime}\right)
    • Constraints

      • n× projective transformation xi=Hxin \times \text { projective transformation } \mathbf{x}_{i}^{\prime}=\mathrm{H} \mathbf{x}_{i}
    • Solutions (n4n \geq 4) ⇒ 4-point algorithm

    • [Note] Planar homography can be decomposed as relative camera pose.

General 2D-2D Geometry (Epiploar Geometry)


Overview of Epipolar Geometry

Untitled

Fundamental Matrix

Untitled

Essential Matrix

Untitled

Epiplar Geometry

Untitled

Untitled

  • Relative Camera Pose Estimation (~ Fundamental/Essential Matrix Estimation)

    Untitled

    • Unknown

      • Rotation and translation R,t\mathrm{R,t} (5 DoF; up-to scale “scale ambiguity”)
    • Given

      • Point correspondence (x1,x1),,(xn,xn)\left(\mathbf{x}_1, \mathbf{x}_1^{\prime}\right), \ldots,\left(\mathbf{x}_n, \mathbf{x}_n^{\prime}\right)
      • camera matrices K,K\mathrm{K,K'}
    • Constraints

      • n× epipolar constraint (xFx=0 or x^Ex^=0)n \times \text { epipolar constraint }\left(\mathbf{x}^{\prime \top} \mathrm{F} \mathbf{x}=0 \text { or } \hat{\mathbf{x}}^{\prime \top} \mathrm{E} \hat{\mathbf{x}}=0\right)
    • Solutions (OpenCV)

      • Fundamental matrix: 7/8-point algorithm (7 DoF)

        Estimation: cv::findFundamentalMat() ⇒ 1 solution

        Conversion to E\mathrm{E}: E=KFK\mathrm{E}=\mathrm{K}^{\prime \top} \mathrm{FK}

        Degenerate cases: No translation, correspondence from a single plane

        → intrinsic & extrinsic camera parameters

      • Essential matrix: 5-point algorithm (5 DoF)

        Estimation: cv::findEssentialMat()kk solutions

        Decomposition: cv::decomposeEssentialMat() ⇒ 4 solutions “relative pose ambiguity”

        Decomposition with positive-depth check: cv::recoverPose() ⇒ 1 solution

        Degenerate case: No translation (E=[t]×R\because \mathrm{E}=[\mathrm{t}]_{\times} \mathrm{R})

        → extrinsic camera parameters

      • Planar homography: 4-point algorithm (8 DoF)

        Estimation: cv::findHomography() ⇒ 1 solution

        Conversion to calibrated H\mathrm{H}: H^=K1HK\widehat{\mathrm{H}}=\mathrm{K}^{\prime-1} \mathrm{HK}Decomposition: cv::decomposeHomographyMat() ⇒ 4 solutions → Degenerate case: Correspondence not from a single plane

        → intrinsic & extrinsic camera parameters + plane normal

본 포스트는 최성록 교수님의 An Inviation to 3D Vision 자료를 정리한 것입니다.


Written by@Miller Shin (SeungRyeol Shin)
Robotics Engineer | ROS | AMR(Autonomous Mobile Robot) | Agricultural Robot | SLAM & Navigation | Robotics Application

InstagramGitHubLinkedIn